package com.bdqn.controller;

import com.bdqn.pojo.Supplier;
import com.bdqn.service.SupplierService;
import com.bdqn.util.Constants;
import com.bdqn.util.PageSupport;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.annotation.Resource;
import java.util.List;

@Controller
@RequestMapping("/supplier")
public class SupplierController {
    private Logger logger=Logger.getLogger(SupplierController.class);
    @Resource
    private SupplierService supplierService;
    @GetMapping("/list")
    public String toList(Model model, String querySupName, String querySupCode, @RequestParam(defaultValue = "1")Integer pageIndex){
        List<Supplier> supplierList = null;
        try{
            //设置页面容量
            int pageSize = Constants.pageSize;
            //总数量
            int totalCount = supplierService.getCount();
            //总页数
            PageSupport pages = new PageSupport();
            pages.setCurrentPageNo(pageIndex); // 设置当前页数
            pages.setPageSize(pageSize);       // 设置一页显示数据量
            pages.setTotalCount(totalCount);   // 设置总数据量
            int totalPageCount = pages.getTotalPageCount();
            //控制首页和尾页
            if (pageIndex > totalPageCount){
                pageIndex = totalPageCount;
                throw new RuntimeException("页码不正确");
            }
            supplierList=supplierService.ListRoleId((pageIndex-1)*pageSize,pageSize,querySupCode,querySupName);
            model.addAttribute("supplierList",supplierList);  // 供货商信息
            model.addAttribute("totalCount",pages.getTotalCount()); // 分页信息
            model.addAttribute("currentPageNo",pages.getPageNo());
            model.addAttribute("totalPageCount",pages.getTotalPageCount());
            model.addAttribute("querySupName",querySupName); // 查询条件回显
            model.addAttribute("querySupCode",querySupCode);
        }catch (Exception e){
            e.printStackTrace();
        }
        return "/supplier/list";
    }

//    public synchronized String multipartFileUpload(String uploadPath, MultipartFile multipartFile, Map<String,String> msg) {
//        String uploadFilePath = null; // 文件上传地址，返回null表示文件上传失败
//
//        // 定义文件存放目录
//        logger.debug("上传文件路径：" + uploadPath);
//
//        if (!multipartFile.isEmpty()) {
//            String originalFile = multipartFile.getOriginalFilename();
//            logger.debug("原文件名称为：" + originalFile);
//            String prefix = FilenameUtils.getExtension(originalFile);
//            logger.debug("原文件后缀为：" + prefix);
//            long fileSize = multipartFile.getSize();
//            logger.debug("上传文件大小：" + fileSize);
//
//            if (fileSize > Constants.MAX_FILE_SIZE) {  // 上传文件大小不能超过500KB
//                msg.put("uploadFileError", "*上传文件大小不得超过5MB");
//                return uploadFilePath;
//            }
//            // 判断文件格式
//            if (!(prefix.equalsIgnoreCase("jpg") || prefix.equalsIgnoreCase("png") || prefix.equalsIgnoreCase("jpeg") || prefix.equalsIgnoreCase("pneg"))) {
//                msg.put("uploadFileError", "*上传文件格式只能是jpg,jpeg,png,pneg");
//                return uploadFilePath;
//            }
//
//            // 确认文件名称
//            String fileName = System.nanoTime() + RandomUtils.nextInt(0, 1000) + "_Personal." + prefix;
//            logger.debug("新生成的文件名为：" + fileName);
//
//            // 将上传的文件保存到目标位置
//            File targetFile = new File(uploadPath);
//            if (!targetFile.exists()) {
//                targetFile.mkdirs(); // 如果目录不存在则生成目录
//            }
//
//            // 保存文件
//            try {
//                // 储存物理地址 + 生成的文件名称
//                multipartFile.transferTo(new File(targetFile, fileName));
//            } catch (IOException e) {
//                e.printStackTrace();
//                msg.put("uploadFileError", "文件上传失败");
//                return uploadFilePath;
//            }
//            // 文件上传成功就可以拿到地址
//            uploadFilePath = "/" + Constants.UPLOAD_PATH + "/" + fileName;
//        }
//        // 返回文件上传成功的地址，失败返回null,并且将失败信息记录到map中
//        return uploadFilePath;
//    }
}
